package com.echo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * @author echo
 * @since 2024-10-31
 */
@TableName("wis_user")
@Data
public class WisUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户id,主键，字符串型
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private String userId;

    /**
     * 用户名
     */
    private String userUsername;

    /**
     * 用户昵称
     */
    private String userNickname;

    /**
     * 用户秘密
     */
    private String userPassword;

    /**
     * 当前用户的角色的id
     */
    private Integer userRoleId;

    /**
     * 用户的头像地址
     */
    private String userAvatar;

    /**
     * 用户的自我描述
     */
    private String userDescription;

    /**
     * 用户邮箱
     */
    private String userEmail;

    /**
     * 用户手机号
     */
    private String userPhone;

    /**
     * 创建时间
     */
    /**
     * 创建时间, 设计表时设置了自动插入当前时间，无需在Java代码中设置了
     */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 更新时间，设计表时设置了自动插入当前时间，无需在Java代码中设置了。
     * 同时@DynamicUpdate注解可以时间当数据库数据变化时自动更新，无需人工维护
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;





    @Override
    public String toString() {
        return "WisUser{" +
            "userId=" + userId +
            ", userUsername=" + userUsername +
            ", userNickname=" + userNickname +
            ", userPassword=" + userPassword +
            ", userRoleId=" + userRoleId +
            ", userAvatar=" + userAvatar +
            ", userDescription=" + userDescription +
            ", userEmail=" + userEmail +
            ", userPhone=" + userPhone +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
        "}";
    }
}
